#ifndef __LIB_AGORA_ADMIN_IHOSTRIGHT_H__
#define __LIB_AGORA_ADMIN_IHOSTRIGHT_H__

namespace AgoraAdmin
{

	class	IHostRight
	{
	public:
		virtual const unsigned int	GetId() const = 0;
		virtual void				SetHostRight(const bool canChangeLogin, const bool canChangePassword, const bool canChangeChannel, const bool canCreateChannel, const bool canDeleteChannel, const bool canMoveChannel, const bool canKickUser, const bool canBanUser, const bool canEditUser) = 0;
		virtual const bool			GetCanChangeLogin(void) const = 0;
		virtual void				SetCanChangeLogin(const bool value) = 0;
		virtual const bool			GetCanChangePassword(void) const = 0;
		virtual void				SetCanChangePassword(const bool value) = 0;
		//can modif host name, codec, bpassante, max user, reboot, etcetc
		virtual const bool			GetCanChangeChannel(void) const = 0;
		virtual void				SetCanChangeChannel(const bool value) = 0;
		virtual const bool			GetCanCreateChannel(void) const = 0;
		virtual void				SetCanCreateChannel(const bool value) = 0;
		virtual const bool			GetCanDeleteChannel(void) const = 0;
		virtual void				SetCanDeleteChannel(const bool value) = 0;
		virtual const bool			GetCanMoveChannel(void) const = 0;
		virtual void				SetCanMoveChannel(const bool value) = 0;
		virtual const bool			GetCanKickUser(void) const = 0;
		virtual void				SetCanKickUser(const bool value) = 0;
		virtual const bool			GetCanBanUser(void) const = 0;
		virtual void				SetCanBanUser(const bool value) = 0;
		virtual const bool			GetCanEditUser(void) const = 0;
		virtual void				SetCanEditUser(const bool value) = 0;
	};

}

#endif